[INFO] fetching crate things3-core 2.1.0...
[INFO] fixing things3-core-2.1.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate things3-core 2.1.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate things3-core 2.1.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate things3-core 2.1.0
[INFO] tweaked toml for crates.io crate things3-core 2.1.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate things3-core 2.1.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate things3-core 2.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024
[INFO] running `Command { std: "docker" "start" "eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling rustls v0.23.39
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rayon-core v1.13.0
[INFO] [stderr]     Checking atoi v2.0.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking sdd v3.0.10
[INFO] [stderr]     Checking flume v0.11.1
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]    Compiling serial_test_derive v3.4.0
[INFO] [stderr]     Checking scc v2.4.0
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking futures-intrusive v0.5.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking tokio v1.52.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]     Checking proptest v1.11.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking serial_test v3.4.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking moka v0.12.15
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking sysinfo v0.30.13
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking sqlx-core v0.8.6
[INFO] [stderr]     Checking sqlx-sqlite v0.8.6
[INFO] [stderr]     Checking rusqlite v0.32.1
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking things3-core v2.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/cache_invalidation_middleware.rs (1 fix)
[INFO] [stderr]        Fixed src/backup.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/cache_invalidation_middleware.rs:219:19
[INFO] [stdout]     |
[INFO] [stdout] 219 |             match self.process_rule(&event, &rule).await { Err(e) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----       -
[INFO] [stdout]     |                   |                                |           |
[INFO] [stdout]     |                   |                                |           `e` calls a custom destructor
[INFO] [stdout]     |                   |                                |           `e` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |                                up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 225 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backup.rs:196:19
[INFO] [stdout]     |
[INFO] [stdout] 196 |             match self.delete_backup(&backup.backup_path) { Err(e) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^       -
[INFO] [stdout]     |                   |                                             |
[INFO] [stdout]     |                   |                                             `e` calls a custom destructor
[INFO] [stdout]     |                   |                                             `e` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 205 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/disk_cache.rs:178:33
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 interval.tick().await;
[INFO] [stdout]     |                 ---------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 173 |
[INFO] [stdout] 174 |                 if let Err(e) = Self::cleanup_expired_entries(&config) {
[INFO] [stdout]     |                            -    --------------------------------------
[INFO] [stdout]     |                            |    |
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `e` calls a custom destructor
[INFO] [stdout]     |                            `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 178 |                 if let Err(e) = Self::cleanup_oversized_entries(&config) {
[INFO] [stdout]     |                            -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |    |
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                            |    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 181 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/config.rs (74 fixes)
[INFO] [stderr]    Migrating tests/ci_tests.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/config_loader.rs (16 fixes)
[INFO] [stderr]        Fixed src/mcp_config.rs (39 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/cache_invalidation_middleware.rs:219:19
[INFO] [stdout]     |
[INFO] [stdout] 219 |             match self.process_rule(&event, &rule).await { Err(e) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----       -
[INFO] [stdout]     |                   |                                |           |
[INFO] [stdout]     |                   |                                |           `e` calls a custom destructor
[INFO] [stdout]     |                   |                                |           `e` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |                                up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 225 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/backup.rs:196:19
[INFO] [stdout]     |
[INFO] [stdout] 196 |             match self.delete_backup(&backup.backup_path) { Err(e) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^       -
[INFO] [stdout]     |                   |                                             |
[INFO] [stdout]     |                   |                                             `e` calls a custom destructor
[INFO] [stdout]     |                   |                                             `e` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 205 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/disk_cache.rs:178:33
[INFO] [stdout]     |
[INFO] [stdout] 172 |                 interval.tick().await;
[INFO] [stdout]     |                 ---------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 173 |
[INFO] [stdout] 174 |                 if let Err(e) = Self::cleanup_expired_entries(&config) {
[INFO] [stdout]     |                            -    --------------------------------------
[INFO] [stdout]     |                            |    |
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `e` calls a custom destructor
[INFO] [stdout]     |                            `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 178 |                 if let Err(e) = Self::cleanup_oversized_entries(&config) {
[INFO] [stdout]     |                            -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |    |
[INFO] [stdout]     |                            |    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                            |    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 181 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/error.rs:713:1
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed tests/ci_tests.rs (1 fix)
[INFO] [stderr]    Migrating tests/bulk_operations_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/observability_integration_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/export_features.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/benchmark_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/tag_operations_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/get_task_by_uuid_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/cache_edge_cases.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/write_operations_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/logbook_search_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/integration_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/bulk_operations.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/feature_flags.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/reliability_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/search_tasks.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/project_area_operations_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/export_edge_cases.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/applescript_live.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/database_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/memory_profiling_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/observability_features.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/schema_inspection.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/feature_disabled_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/task_lifecycle_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/concurrent_operations_tests.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/database_error_tests.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/concurrent_operations_tests.rs:139:30
[INFO] [stdout]     |
[INFO] [stdout] 139 |     while let Some(result) = tasks.join_next().await {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                              |                 |
[INFO] [stdout]     |                              |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                              |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                              |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                              |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                              up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                              `__awaitee` calls a custom destructor
[INFO] [stdout]     |                              `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 143 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/concurrent_operations_tests.rs:257:30
[INFO] [stdout]     |
[INFO] [stdout] 257 |     while let Some(result) = tasks.join_next().await {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                              |                 |
[INFO] [stdout]     |                              |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                              |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                              |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                              |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                              up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                              `__awaitee` calls a custom destructor
[INFO] [stdout]     |                              `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 261 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/concurrent_operations_tests.rs:347:30
[INFO] [stdout]     |
[INFO] [stdout] 347 |     while let Some(result) = tasks.join_next().await {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                              |                 |
[INFO] [stdout]     |                              |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                              |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                              |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                              |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                              up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                              `__awaitee` calls a custom destructor
[INFO] [stdout]     |                              `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 351 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/basic_usage.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/date_handling_tests.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] [stderr] crater-edition-check: things3-core v2.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking things3-core v2.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         unsafe { std::env::set_var("THINGS_DATABASE_PATH", test_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", "true") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:194:13
[INFO] [stdout]     |
[INFO] [stdout] 194 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |             unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:205:13
[INFO] [stdout]     |
[INFO] [stdout] 205 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |             unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |         unsafe { std::env::set_var("THINGS_DB_PATH", test_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 254 |         unsafe { std::env::set_var("THINGS_DB_PATH", new_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |         unsafe { std::env::set_var("THINGS_DATABASE_PATH", legacy_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |             unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |             unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 286 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:288:9
[INFO] [stdout]     |
[INFO] [stdout] 288 |         unsafe { std::env::set_var("THINGS_DATABASE_PATH", legacy_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |             unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:360:9
[INFO] [stdout]     |
[INFO] [stdout] 360 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:362:9
[INFO] [stdout]     |
[INFO] [stdout] 362 |         unsafe { std::env::set_var("THINGS_DATABASE_PATH", test_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |         unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", "false") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:376:13
[INFO] [stdout]     |
[INFO] [stdout] 376 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:379:13
[INFO] [stdout]     |
[INFO] [stdout] 379 |             unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |             unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |         unsafe { std::env::set_var("THINGS_DATABASE_PATH", &test_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:408:9
[INFO] [stdout]     |
[INFO] [stdout] 408 |         unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", "true") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:417:13
[INFO] [stdout]     |
[INFO] [stdout] 417 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:421:13
[INFO] [stdout]     |
[INFO] [stdout] 421 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:424:13
[INFO] [stdout]     |
[INFO] [stdout] 424 |             unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:428:13
[INFO] [stdout]     |
[INFO] [stdout] 428 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |             unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:449:9
[INFO] [stdout]     |
[INFO] [stdout] 449 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:451:9
[INFO] [stdout]     |
[INFO] [stdout] 451 |         unsafe { std::env::set_var("THINGS_DATABASE_PATH", &test_path) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:453:9
[INFO] [stdout]     |
[INFO] [stdout] 453 |         unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", "invalid") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:462:13
[INFO] [stdout]     |
[INFO] [stdout] 462 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:466:13
[INFO] [stdout]     |
[INFO] [stdout] 466 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:469:13
[INFO] [stdout]     |
[INFO] [stdout] 469 |             unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |             unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:619:9
[INFO] [stdout]     |
[INFO] [stdout] 619 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:621:9
[INFO] [stdout]     |
[INFO] [stdout] 621 |         unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:623:9
[INFO] [stdout]     |
[INFO] [stdout] 623 |         unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:630:13
[INFO] [stdout]     |
[INFO] [stdout] 630 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:634:13
[INFO] [stdout]     |
[INFO] [stdout] 634 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:638:13
[INFO] [stdout]     |
[INFO] [stdout] 638 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:831:9
[INFO] [stdout]     |
[INFO] [stdout] 831 |         unsafe { std::env::set_var("HOME", "/nonexistent/home") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:843:13
[INFO] [stdout]     |
[INFO] [stdout] 843 |             unsafe { std::env::set_var("HOME", home) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:846:13
[INFO] [stdout]     |
[INFO] [stdout] 846 |             unsafe { std::env::remove_var("HOME") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:890:9
[INFO] [stdout]     |
[INFO] [stdout] 890 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:892:9
[INFO] [stdout]     |
[INFO] [stdout] 892 |         unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:894:9
[INFO] [stdout]     |
[INFO] [stdout] 894 |         unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:904:13
[INFO] [stdout]     |
[INFO] [stdout] 904 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:908:13
[INFO] [stdout]     |
[INFO] [stdout] 908 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config.rs:912:13
[INFO] [stdout]     |
[INFO] [stdout] 912 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1086:13
[INFO] [stdout]      |
[INFO] [stdout] 1086 |             unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1090:13
[INFO] [stdout]      |
[INFO] [stdout] 1090 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", value) };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1120:13
[INFO] [stdout]      |
[INFO] [stdout] 1120 |             unsafe { std::env::set_var("THINGS_FALLBACK_TO_DEFAULT", original) };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1123:13
[INFO] [stdout]      |
[INFO] [stdout] 1123 |             unsafe { std::env::remove_var("THINGS_FALLBACK_TO_DEFAULT") };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1137:9
[INFO] [stdout]      |
[INFO] [stdout] 1137 |         unsafe { std::env::remove_var("THINGS_DB_PATH") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1139:9
[INFO] [stdout]      |
[INFO] [stdout] 1139 |         unsafe { std::env::remove_var("THINGS_DATABASE_PATH") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1141:9
[INFO] [stdout]      |
[INFO] [stdout] 1141 |         unsafe { std::env::set_var("HOME", "/test/home") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1151:13
[INFO] [stdout]      |
[INFO] [stdout] 1151 |             unsafe { std::env::set_var("HOME", home) };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1154:13
[INFO] [stdout]      |
[INFO] [stdout] 1154 |             unsafe { std::env::remove_var("HOME") };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1158:13
[INFO] [stdout]      |
[INFO] [stdout] 1158 |             unsafe { std::env::set_var("THINGS_DB_PATH", v) };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/config.rs:1162:13
[INFO] [stdout]      |
[INFO] [stdout] 1162 |             unsafe { std::env::set_var("THINGS_DATABASE_PATH", v) };
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         unsafe { std::env::set_var("MCP_SERVER_NAME", "env-server") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |         unsafe { std::env::set_var("MCP_SERVER_NAME", "env-test") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:408:9
[INFO] [stdout]     |
[INFO] [stdout] 408 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:556:9
[INFO] [stdout]     |
[INFO] [stdout] 556 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:579:9
[INFO] [stdout]     |
[INFO] [stdout] 579 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         unsafe { std::env::set_var("MCP_SERVER_NAME", "") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:587:9
[INFO] [stdout]     |
[INFO] [stdout] 587 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:592:9
[INFO] [stdout]     |
[INFO] [stdout] 592 |         unsafe { std::env::set_var("MCP_SERVER_NAME", &long_name) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:596:9
[INFO] [stdout]     |
[INFO] [stdout] 596 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:600:9
[INFO] [stdout]     |
[INFO] [stdout] 600 |         unsafe { std::env::set_var("MCP_SERVER_NAME", "test-server-123_!@#$%^&*()") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:604:9
[INFO] [stdout]     |
[INFO] [stdout] 604 |         unsafe { std::env::remove_var("MCP_SERVER_NAME") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:616:9
[INFO] [stdout]     |
[INFO] [stdout] 616 |         unsafe { std::env::set_var("HOME", temp_dir.path()) };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:627:13
[INFO] [stdout]     |
[INFO] [stdout] 627 |             unsafe { std::env::set_var("HOME", v) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/config_loader.rs:630:13
[INFO] [stdout]     |
[INFO] [stdout] 630 |             unsafe { std::env::remove_var("HOME") };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/database/validators.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:879:9
[INFO] [stdout]     |
[INFO] [stdout] 879 |         unsafe { std::env::set_var("MCP_SERVER_NAME", "test-server") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:881:9
[INFO] [stdout]     |
[INFO] [stdout] 881 |         unsafe { std::env::set_var("MCP_LOG_LEVEL", "debug") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:883:9
[INFO] [stdout]     |
[INFO] [stdout] 883 |         unsafe { std::env::set_var("MCP_CACHE_ENABLED", "false") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:970:13
[INFO] [stdout]     |
[INFO] [stdout] 970 |             unsafe { std::env::remove_var(var) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:976:9
[INFO] [stdout]     |
[INFO] [stdout] 976 |         unsafe { std::env::set_var("MCP_SERVER_NAME", "test-server") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:978:9
[INFO] [stdout]     |
[INFO] [stdout] 978 |         unsafe { std::env::set_var("MCP_SERVER_VERSION", "1.2.3") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:980:9
[INFO] [stdout]     |
[INFO] [stdout] 980 |         unsafe { std::env::set_var("MCP_SERVER_DESCRIPTION", "Test Description") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:982:9
[INFO] [stdout]     |
[INFO] [stdout] 982 |         unsafe { std::env::set_var("MCP_MAX_CONNECTIONS", "150") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:984:9
[INFO] [stdout]     |
[INFO] [stdout] 984 |         unsafe { std::env::set_var("MCP_CONNECTION_TIMEOUT", "30") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:986:9
[INFO] [stdout]     |
[INFO] [stdout] 986 |         unsafe { std::env::set_var("MCP_REQUEST_TIMEOUT", "60") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:988:9
[INFO] [stdout]     |
[INFO] [stdout] 988 |         unsafe { std::env::set_var("MCP_DATABASE_PATH", "/test/db.sqlite") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:990:9
[INFO] [stdout]     |
[INFO] [stdout] 990 |         unsafe { std::env::set_var("MCP_DATABASE_FALLBACK", "false") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:992:9
[INFO] [stdout]     |
[INFO] [stdout] 992 |         unsafe { std::env::set_var("MCP_DATABASE_POOL_SIZE", "20") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:994:9
[INFO] [stdout]     |
[INFO] [stdout] 994 |         unsafe { std::env::set_var("MCP_LOG_LEVEL", "debug") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:996:9
[INFO] [stdout]     |
[INFO] [stdout] 996 |         unsafe { std::env::set_var("MCP_LOG_FILE", "/test/log.txt") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]    --> src/mcp_config.rs:998:9
[INFO] [stdout]     |
[INFO] [stdout] 998 |         unsafe { std::env::set_var("MCP_PERFORMANCE_ENABLED", "false") };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1000:9
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         unsafe { std::env::set_var("MCP_SLOW_REQUEST_THRESHOLD", "5000") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1002:9
[INFO] [stdout]      |
[INFO] [stdout] 1002 |         unsafe { std::env::set_var("MCP_AUTH_ENABLED", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1004:9
[INFO] [stdout]      |
[INFO] [stdout] 1004 |         unsafe { std::env::set_var("MCP_JWT_SECRET", "test-secret") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1006:9
[INFO] [stdout]      |
[INFO] [stdout] 1006 |         unsafe { std::env::set_var("MCP_RATE_LIMIT_ENABLED", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1008:9
[INFO] [stdout]      |
[INFO] [stdout] 1008 |         unsafe { std::env::set_var("MCP_REQUESTS_PER_MINUTE", "120") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1010:9
[INFO] [stdout]      |
[INFO] [stdout] 1010 |         unsafe { std::env::set_var("MCP_CACHE_ENABLED", "false") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1012:9
[INFO] [stdout]      |
[INFO] [stdout] 1012 |         unsafe { std::env::set_var("MCP_CACHE_MAX_SIZE_MB", "500") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1014:9
[INFO] [stdout]      |
[INFO] [stdout] 1014 |         unsafe { std::env::set_var("MCP_MONITORING_ENABLED", "false") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1016:9
[INFO] [stdout]      |
[INFO] [stdout] 1016 |         unsafe { std::env::set_var("MCP_METRICS_PORT", "9090") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1018:9
[INFO] [stdout]      |
[INFO] [stdout] 1018 |         unsafe { std::env::set_var("MCP_HEALTH_PORT", "8080") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1020:9
[INFO] [stdout]      |
[INFO] [stdout] 1020 |         unsafe { std::env::set_var("MCP_REAL_TIME_UPDATES", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1022:9
[INFO] [stdout]      |
[INFO] [stdout] 1022 |         unsafe { std::env::set_var("MCP_WEBSOCKET_SERVER", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1024:9
[INFO] [stdout]      |
[INFO] [stdout] 1024 |         unsafe { std::env::set_var("MCP_DASHBOARD", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1026:9
[INFO] [stdout]      |
[INFO] [stdout] 1026 |         unsafe { std::env::set_var("MCP_BULK_OPERATIONS", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1028:9
[INFO] [stdout]      |
[INFO] [stdout] 1028 |         unsafe { std::env::set_var("MCP_DATA_EXPORT", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1030:9
[INFO] [stdout]      |
[INFO] [stdout] 1030 |         unsafe { std::env::set_var("MCP_BACKUP", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1032:9
[INFO] [stdout]      |
[INFO] [stdout] 1032 |         unsafe { std::env::set_var("MCP_HOT_RELOADING", "true") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         unsafe { std::env::set_var("MCP_MAX_CONNECTIONS", "invalid") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1100:9
[INFO] [stdout]      |
[INFO] [stdout] 1100 |         unsafe { std::env::remove_var("MCP_MAX_CONNECTIONS") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1103:9
[INFO] [stdout]      |
[INFO] [stdout] 1103 |         unsafe { std::env::set_var("MCP_CONNECTION_TIMEOUT", "not-a-number") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1107:9
[INFO] [stdout]      |
[INFO] [stdout] 1107 |         unsafe { std::env::remove_var("MCP_CONNECTION_TIMEOUT") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1110:9
[INFO] [stdout]      |
[INFO] [stdout] 1110 |         unsafe { std::env::set_var("MCP_REQUEST_TIMEOUT", "abc") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]     --> src/mcp_config.rs:1114:9
[INFO] [stdout]      |
[INFO] [stdout] 1114 |         unsafe { std::env::remove_var("MCP_REQUEST_TIMEOUT") };
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> tests/memory_profiling_tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::NamedTempFile`
[INFO] [stdout]  --> tests/memory_profiling_tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tempfile::NamedTempFile;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::NamedTempFile`
[INFO] [stdout]  --> tests/benchmark_tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tempfile::NamedTempFile;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ThingsDatabase`
[INFO] [stdout]  --> tests/benchmark_tests.rs:8:46
[INFO] [stdout]   |
[INFO] [stdout] 8 | use things3_core::{CacheConfig, ThingsCache, ThingsDatabase};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::NamedTempFile`
[INFO] [stdout]  --> tests/integration_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tempfile::NamedTempFile;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateAreaRequest`, `CreateProjectRequest`, `ProjectChildHandling`, `ThingsDatabase`, `UpdateAreaRequest`, and `UpdateProjectRequest`
[INFO] [stdout]  --> tests/project_area_operations_tests.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |         CreateAreaRequest, CreateProjectRequest, ProjectChildHandling, UpdateAreaRequest,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |         UpdateProjectRequest,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     },
[INFO] [stdout] 8 |     ThingsDatabase,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::NamedTempFile`
[INFO] [stdout]  --> tests/concurrent_operations_tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tempfile::NamedTempFile;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ThingsDatabase`
[INFO] [stdout]  --> tests/concurrent_operations_tests.rs:8:46
[INFO] [stdout]   |
[INFO] [stdout] 8 | use things3_core::{CacheConfig, ThingsCache, ThingsDatabase};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateTaskRequest`, `TaskStatus`, `TaskType`, `ThingsDatabase`, `ThingsId`, and `UpdateTaskRequest`
[INFO] [stdout]  --> tests/write_operations_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CreateTaskRequest, TaskStatus, TaskType, ThingsDatabase, ThingsId, UpdateTaskRequest,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateTagRequest`, `TagCreationResult`, and `UpdateTagRequest`
[INFO] [stdout]  --> tests/tag_operations_tests.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 |     models::{CreateTagRequest, TagCreationResult, TagMatchType, UpdateTagRequest},
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `things3_core::ThingsError`
[INFO] [stdout]   --> tests/date_handling_tests.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use things3_core::ThingsError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `things3-core` (lib test) due to 129 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024", kill_on_drop: false }`
[INFO] [stdout] eed759f081bde8f19926a19433b8ac9478c6ef1d8d124bd1081d0461a3c50024
